
// 解构

const [a,b,c] = [1,2,3]

console.log(c)

const [a1,...b1] = [1,2,3,4]

console.log(a1,b1)

// 结构不成功，值为undefined

// 某种数据结构具有 Iterator 接口，就可以使用解构赋值

function *fibs(){
    let a = 0;
    let b = 1;
    while(true){
        yield a;
        [a, b] = [b, b+a]
    }
}

const [fi,se,th,fo,fif,six] = fibs()
console.log(fi,se,th,fo,fif,six)

// 设置默认值 
// ===undefined的时候才会使用默认值

const [a3,b3 = 'b3'] = ['a3']
console.log(a3,b3)

// 对象结构
const {a4} = {a4:'123'}
// ====>>>>
// const {a4:a4} = {a4:'123'}
// 改变名称 
const {a4:othername} = {a4:'123'}

console.log(othername)

// 字符串解构
const [p] = 'hello'
console.log(p) // h
